Como dice el título. Estoy aprendiendo coerción en JavaScript y no entiendo el retorno de esa expresión.
const test = !+[]+[]+![]; console.log(test);Primero, debe tener en cuenta cómo se evalúa la expresión, por lo que para expresiones como esta podría ser útil observar la precedencia del operador.
Envolveré las expresiones con paréntesis y veré cómo va. El no lógico precede a la suma (infijo +)
!(+[])+([])+(!([])) !(0)+([])+false true+([])+false Luego, cuando intente evaluar true+[] , ambos se convertirán en una cadena y dará como resultado "verdadero", luego agregará "true"+false , false se convertirá en una cadena.